home *** CD-ROM | disk | FTP | other *** search
/ CU Amiga Super CD-ROM 19 / CU Amiga Magazine's Super CD-ROM 19 (1998)(EMAP Images)(GB)[!][issue 1998-02].iso / CUCD / Online / Apache / cgi-bin / test-cgi.tcl < prev    next >
Text File  |  1997-04-15  |  1KB  |  58 lines

  1. #!/bin/tclsh
  2.  
  3. # tcl-cgi.tcl
  4. # robert.bagwill@nist.gov, no warranty, no rights reserved
  5. # print out command line args, stdin, and environment variables
  6. #
  7. set envvars {SERVER_SOFTWARE SERVER_NAME GATEWAY_INTERFACE SERVER_PROTOCOL SERVER_PORT REQUEST_METHOD PATH_INFO PATH_TRANSLATED SCRIPT_NAME QUERY_STRING REMOTE_HOST REMOTE_ADDR REMOTE_USER AUTH_TYPE CONTENT_TYPE CONTENT_LENGTH HTTP_ACCEPT}
  8.  
  9. puts "Content-type: text/HTML\n"
  10. puts "<HTML>"
  11. puts "<HEAD>"
  12. puts "<TITLE>CGI/1.0 TCL script report:</TITLE>"
  13. puts "</HEAD>"
  14.  
  15. puts "<BODY>"
  16. puts "<H1>Command Line Arguments</H1>"
  17. puts "argc is $argc. argv is $argv."
  18. puts ""
  19.  
  20. puts "<H1>Message</H1>"
  21. puts "<PRE>"
  22. set message [split [read stdin $env(CONTENT_LENGTH)] &]
  23. foreach pair $message {
  24.     set name [lindex [split $pair =] 0]
  25.     set val [lindex [split $pair =] 1]
  26.     regsub -all {\+} $val { } val
  27.     # kludge to unescape chars
  28.     regsub -all {\%0A} $val \n\t val
  29.     regsub -all {\%2C} $val {,} val
  30.     regsub -all {\%27} $val {'} val
  31.     puts "$name\t= $val"
  32. }
  33. puts "</PRE>"
  34.  
  35. puts "<H1>Environment Variables</H1>"
  36. puts "<DL>"
  37. foreach var $envvars {
  38.     if {[info exists env($var)]} {
  39.         puts -nonewline "<DT>$var"
  40.         eval {set val $env($var)}
  41.         if {[llength $val] > 1} {
  42.             puts "<DD>"
  43.             foreach subval [lsort $val] {
  44.                 puts "$subval"
  45.             }
  46.         } else {
  47.             puts "<DD>$val"
  48.         }
  49.     }
  50. }
  51. puts "</DL>"
  52. puts "</BODY>"
  53. puts "</HTML>"
  54. ######################
  55. # end of tcl-cgi.tcl
  56. ######################
  57.  
  58.